@echo off
chcp 65001
setlocal enabledelayedexpansion

echo =====================================
echo    虚拟校园系统 - Gitee上传工具
echo =====================================

REM 检查是否提供了Gitee仓库地址
if "%1"=="" (
    echo 使用方法: upload-to-gitee.bat [Gitee仓库地址]
    echo 示例: upload-to-gitee.bat https://gitee.com/你的用户名/vCampus.git
    echo.
    echo 或者使用SSH地址:
    echo upload-to-gitee.bat git@gitee.com:你的用户名/vCampus.git
    pause
    exit /b 1
)

set GITEE_URL=%1
echo 准备上传到: %GITEE_URL%
echo.

REM 检查git是否安装
git --version >nul 2>&1
if %errorlevel% neq 0 (
    echo 错误: 未检测到Git，请先安装Git
    echo 下载地址: https://git-scm.com/downloads
    pause
    exit /b 1
)

REM 检查是否已有git仓库
if exist .git (
    echo 检测到已有Git仓库...
    goto :CHECK_REMOTE
) else (
    echo 初始化Git仓库...
    git init
    if %errorlevel% neq 0 (
        echo 错误: Git初始化失败
        pause
        exit /b 1
    )
)

:CHECK_REMOTE
echo 检查远程仓库配置...
git remote get-url origin >nul 2>&1
if %errorlevel% neq 0 (
    echo 添加远程仓库...
    git remote add origin %GITEE_URL%
) else (
    echo 更新远程仓库地址...
    git remote set-url origin %GITEE_URL%
)

REM 配置用户信息（如果尚未配置）
git config user.name >nul 2>&1
if %errorlevel% neq 0 (
    set /p USER_NAME=请输入Git用户名: 
    git config user.name "%USER_NAME%"
)

git config user.email >nul 2>&1
if %errorlevel% neq 0 (
    set /p USER_EMAIL=请输入Git邮箱: 
    git config user.email "%USER_EMAIL%"
)

REM 添加所有文件
echo.
echo 添加文件到Git...
git add .

REM 检查是否有更改
git diff --cached --quiet
if %errorlevel% equ 0 (
    echo 没有需要提交的更改
    goto :PUSH_TO_GITEE
)

REM 提交更改
echo.
echo 提交更改...
git commit -m "feat: 更新虚拟校园系统

- 重构用户界面，采用现代化设计
- 整合用户类型转换工具类
- 清理冗余代码和过时文件
- 添加完整项目文档
- 优化项目结构"

:PUSH_TO_GITEE
echo.
echo 推送到Gitee...
git push -u origin master

if %errorlevel% neq 0 (
    echo.
    echo 上传遇到问题，可能的原因：
    echo 1. 网络连接问题
    echo 2. 认证失败 - 请检查用户名密码
    echo 3. 仓库地址错误
    echo.
    echo 请手动执行以下命令：
    echo git push origin master
    pause
    exit /b 1
)

echo.
echo =====================================
echo    上传成功！
echo =====================================
echo 访问地址: %GITEE_URL%
pause